environmental 1.1.4

Set scope-limited values can can be accessed statically
Documentation
Safe global references to stack variables. Set up a global reference with environmental! macro giving it a name and type. Use the `using` function scoped under its name to name a reference and call a function that takes no parameters yet can access said reference through the similarly placed `with` function. # Examples ``` #[macro_use] extern crate environmental; // create a place for the global reference to exist. environmental!(counter: u32); fn stuff() { // do some stuff, accessing the named reference as desired. counter::with(|i| *i += 1); } fn main() { // declare a stack variable of the same type as our global declaration. let mut counter_value = 41u32; // call stuff, setting up our `counter` environment as a reference to our counter_value var. counter::using(&mut counter_value, stuff); println!("The answer is {:?}", counter_value); // will print 42! stuff(); // safe! doesn't do anything. } ```